//
//  Copyright 2022 Splendo Consulting B.V. The Netherlands
// 
//    Licensed under the Apache License, Version 2.0 (the "License");
//    you may not use this file except in compliance with the License.
//    You may obtain a copy of the License at
// 
//      http://www.apache.org/licenses/LICENSE-2.0
// 
//    Unless required by applicable law or agreed to in writing, software
//    distributed under the License is distributed on an "AS IS" BASIS,
//    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
//    See the License for the specific language governing permissions and
//    limitations under the License.
//

import SwiftUI
import KalugaExampleShared

struct AlertsView: View {

    let lifecycleViewModel: LifecycleViewModel<AlertViewModel>

    init() {
        let containerView = ContainerView(.alert)
        let viewModel = AlertViewModel(builder: containerView.alertBuilder)
        lifecycleViewModel = LifecycleViewModel(viewModel, containerView: containerView)
    }

    var body: some View {
        lifecycleViewModel.lifecycleView { viewModel in
            VStack(spacing: 10.0) {
                viewModel.showAlertButton.toButton(
                    buttonFrame: .frame(maxWidth: .infinity)
                )
                viewModel.showAndDismissAfter3SecondsButton.toButton(
                    buttonFrame: .frame(maxWidth: .infinity)
                )
                viewModel.showAlertWithInputButton.toButton(
                    buttonFrame: .frame(maxWidth: .infinity)
                )
                viewModel.showAlertWithListButton.toButton(
                    buttonFrame: .frame(maxWidth: .infinity)
                )
                Spacer()
            }
        }
        .padding(10.0)
        .navigationTitle(Text("feature_alerts".localized()))
    }
}

struct AlertsView_Previews: PreviewProvider {
    static var previews: some View {
        AlertsView()
    }
}
